//
// Created by 30938 on 2022/8/29.
//
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
#include <algorithm>
#include <iomanip>

using namespace std;

void test01() {
    ostringstream oss;
    oss << 1 << "hello" << 'c';
    string str = oss.str();
    cout << str << endl;
}

void test03() {
    string line = "33,34,35,36,37";
    replace(line.begin(), line.end(), ',', ' ');
    istringstream bss(line);
    vector<int> brr;
    string tempNum;
    while (bss >> tempNum) {
        brr.push_back(stoi(tempNum));
    }
    int sum = 0;
    for (auto elem: brr) {
        sum += elem;
    }
    float avg = sum / 5;
    cout << avg << endl;


    istringstream iss("hello  world   mayi");
    vector<string> arr;
    string temp;
    while (iss >> temp) {
        arr.push_back(temp);
    }
    for (auto str: arr) {
        cout << str << endl;
    }
}

void test04() {


    cout << setiosflags(ios::left) << setw(7); //设置宽度为7，left对齐方式
    cout << 123;
    cout<<"****"<<endl;
    cout << resetiosflags(ios::left); //取消对齐方式
    cout << setfill('*') << setw(30); //宽度为30，填充为'.'输出
    cout<<123<<endl;
    cout << setfill(' '); //恢复填充为空格
    cout << setiosflags(ios::showpos); //强制在正数前加+号
    cout << resetiosflags(ios::showpos); //取消正数前加+号
    cout << setiosflags(ios::showpoint); //强制显示小数点后的无效0
    cout << resetiosflags(ios::showpoint); //取消显示小数点后的无效0
    cout << setiosflags(ios::scientific); //科学记数法
    cout << resetiosflags(ios::scientific); //取消科学记数法
    cout << setprecision(18); //精度为18，正常为6
    cout << setprecision(6); //精度恢复为6
    cout << oct << 15<<" "<<20<<" "<<endl; //输入为八进制数


    cout << hex << 20; //输入为十六进制数
}


int main() {
    // test04();
    // test03();
    // test01();
    return 0;
}
